Characterising the Use of Encapsulation in Object Oriented Systems
نویسندگان
چکیده
Software is commonly very large and complex, and consequently hard to develop, understand and maintain. Encapsulation is the practice of breaking a system up into well-defined pieces and hiding internal details within each piece. It supports modularisation and information hiding, making it one of the most fundamental tools software developers have for managing complexity. Object oriented design heuristics have been proposed to help developers achieve better software designs and thus improve overall software quality; many of these design heuristics concern the use of encapsulation or are based on underlying assumptions about encapsulation. However, design advice in this area often conflicts. Little is known about how developers apply encapsulation in practice. In this work, we identify and compare two radically different schools of thought that underpin encapsulation policies and lead to the conflicting encapsulation advice. We conducted a survey to reveal which encapsulation policy is more intuitive, and found that novices’ intuition about encapsulation differs from the encapsulation mechanisms supported by languages such as Java and C#. Following the survey, we empirically analysed encapsulation in real-world software to determine which encapsulation policies are followed in practice, uncovering a general culture of confusion and inconsistency around the use of encapsulation. This finding leads us to propose refactoring tools and a visualisation for helping developers improve encapsulation in software.
منابع مشابه
Objects Identification in Object-Oriented Software Development - A Taxonomy and Survey on Techniques
Analysis and design of object oriented is onemodern paradigms for developing a system. In this paradigm, there are several objects and each object plays some specific roles. Identifying objects (and classes) is one of the most important steps in the object-oriented paradigm. This paper makes a literature review over techniques to identify objects and then presents six taxonomies for them. The f...
متن کاملChange Detection Gamasiab River Margins in Kermanshah by Comparison Pixel Base and Object Orientd Algorithms
Introduction Land use reflects the interactive characteristics of humans and the environment and describes how human exploitation works for one or more targets on the ground. Land use is usually defined on the basis of human use of the land, with an emphasis on the functional role of land in economic activities. Land use, which is associated with human activity, is undergoing change over time....
متن کاملModelsaz: An Object-Oriented Computer-Aided Modeling Environment
Modeling and simulation of processing plants are widely used in industry. Construction of a mathematical model for a plant is a time-consuming and error-prone task. In light of extensive advancements in computer science (both hardware and software), computers are becoming a necessary instrument in industrial activities. Many software tools for modeling, simulation and optimization of proces...
متن کاملOn Attributes of Objects in Object-Oriented Software Analysis
One of the modern paradigms to develop a system is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles. There is a sequence of activities to develop an analysis model. In the first step, we work in developing an initial use case model. Then in the second step, they identify a number of concepts and build a glossary of partic...
متن کاملModeling and Evaluation of Stochastic Discrete-Event Systems with RayLang Formalism
In recent years, formal methods have been used as an important tool for performance evaluation and verification of a wide range of systems. In the view points of engineers and practitioners, however, there are still some major difficulties in using formal methods. In this paper, we introduce a new formal modeling language to fill the gaps between object-oriented programming languages (OOPLs) us...
متن کامل